<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>会员管理系统-会员登录</title>
    <style>
        .main {
            width: 80%;
            margin: 0 auto;
            text-align: center
        }

        h2 {
            text-align: center;
            font-size: 16px
        }

        h2 a {
            color: cornflowerblue;
            text-decoration: none;
            margin-right: 15px
        }

        h2 a:hover {
            color: crimson;
            text-decoration: underline
        }

        h2 a:last-child {
            margin-right: 0
        }
        .ok{color:green}
        .require{color: red}
        #loading{display: none}
    </style>
</head>
<body>
<div class="main">
    <form action="postLogin.php" method="post" onsubmit="return check()">
        <table align="center" cellpadding="10" border="1" cellspacing="0">
            <tr>
                <td align="right">用户名</td>
                <td align="left"><input type="text" id="username" name="username" onblur="ajax()"> <span class="require">*</span> <img id="loading" src="img/loading.gif" width="50px"><span id="usernameMsg"></span></td>
            </tr>
            <tr>
                <td align="right">密码</td>
                <td align="left"><label><input type='password' id="password" name="pw"> <span class="require">*</span></label></td>
            </tr>
            <tr>
                <td align="right">验证码</td>
                <td align="left"><label><input id="code" name="code" > <span class="require">*</span></label><img style="cursor: pointer" src="code.php" onclick="this.src='code.php'"></td>
            </tr>
            <tr>
                <td  align="right"><input type="button" onclick="check()" value="提交"></td>
                <td align="left"><input type="reset" value="重置"></td>
            </tr>
        </table>
    </form>
</div>
</body>
<script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
<script>
    function login()
    {
        //首先读取用户名和密码，并对用户名和密码的内容进行验证
        let username = $("#username").val().trim();
        let password = $("#password").val().trim();
        let code = $("#code").val().trim();
        if(username.length > 0 && password.length > 0 && code.length > 0){
            //通过ajax去后台判断用户名和密码是否正确
            $.ajax({
                url:"ajaxCheckLogin.php",
                type:"post",
                dataType:'json',
                data:{
                  username:username,
                  password:password,
                  code:code
                },
                success:function(data){
                    if(data.code == -1){
                        alert(data.errMsg);
                    }
                    else{
                        //说明登录成功，需要关闭index.php中的弹窗
                        //在子页面中调用父页面中的closeLayer方法
                        window.parent.closeLayer();
                        window.parent.showLogout();
                        //显示头像
                        //data.pic
                        window.parent.showPic(data.pic,data.username);
                        window.parent.showAdmin(data.isAdmin);
                    }
                },
                error:function(){

                }
            })
        }
    }
    function checkUsername(username){
        let usernameReg = /^[a-zA-Z\d]{3,10}$/;
        if(!usernameReg.test(username)){
            alert('用户名必填，且只能由大小写字符和（或）数字构成，且长度在3到10个字符之间');
            return false;
        }
        return true;
    }
    function ajax(){
        let username = $("#username").val().trim();
        if(username.length > 0){
            if(checkUsername(username)){
                //说明用户名有填写，且满足构成规则
                //通过jQuery封装 ajax去后台查询当前用户名是否有效
                $.ajax({
                    url:'ajaxCheckUsername.php',
                    data:{
                        username:username
                    },
                    dataType:'json',
                    type:'post',
                    complete:function(){
                        $("#loading").hide();
                    },
                    beforeSend: function(){
                        //发起请求之前，显示loading动画
                        $("#loading").show();
                    },
                    success:function(data){
                        //当ajax执行成功的时候调用
                        //console.log(data);
                        if(data.code == -1){
                            //说明用户名已经被占用，接下来，给出被占用的提示
                            //alert('当前用户名 ' + username + ' 己被注册！');
                            //jQuery支持链式操作
                            $("#usernameMsg").text('用户名正常').addClass('ok').removeClass('require');
                        }
                        else{
                            $("#usernameMsg").text('用户名错误').addClass('require').removeClass('ok');
                            $("#username").focus().select();
                        }
                    },
                    error:function(){
                        //当ajax执行失败的时候调用
                        alert('网络错误');
                    }
                })
            }
        }
    }
    function check(){
        //进行数据验证，合格以后返回true，否则，返回false
        //第一步，判断用户名是否填写，且填写的内容是否是大小写字符、数字，且长度在3至10个字符之间。
        let username = document.getElementsByName('username')[0].value.trim();
        let usernameReg = /^[a-zA-Z\d]{3,10}$/;
        let pw = document.getElementsByName('pw')[0].value.trim();
        let pwReg = /^[a-zA-Z\d_*]{6,10}$/;
        let code = document.getElementById('code').value.trim();
        let codeReg = /^[a-zA-Z\d]{4}$/;
        if(!usernameReg.test(username)){
            alert('用户名必填，且只能由大小写字符和（或）数字构成，且长度在3到10个字符之间');
            return false;
        }
        if(!pwReg.test(pw)){
            alert('密码必填，且只能由大小写字符和（或）数字，以及*、_构成，且长度在6到10个字符之间');
            return false;
        }
        if(!codeReg.test(code)){
            alert('验证码必填，且只能由大小写字符和（或）数字构成，且长度为4个字符');
            return false;
        }
        login();
    }
</script>
</html>